package com.leilei.dao;

import com.leilei.entity.Commodity;
import com.leilei.entity.Page;

import java.util.List;

public interface ICommodityDao {

    /**
     * 得到主页的商品图
     * @param type 要查找的type
     * @return 返回商品集合
     */
    List<Commodity> selectCommodityInIndex(int type);

    /**
     * 分页查询
     * @param type 要查找的type
     * @param page 要查找的页数
     * @param pageSize 每页的最大数量
     * @return 返回商品集合
     */
    List<Commodity> selectCommodityByPage(int type, int page, int pageSize);

    /**
     * 根据ID查询商品
     * @param pid 要查找的pid
     * @return 返回商品
     */
    Commodity selectCommodityById(int pid);

    /**
     * 获取定制化商品的信息
     * @param pid   要拿到的商品信息
     * @param pvid  要拿到的商品的版本
     * @param pcid  要拿到的商品的颜色
     * @return 返回商品信息
     */
    Commodity selectCommodityCustom(int pid, int pvid, int pcid);

    /**
     * 分页查询
     * @param page Page对象
     * @param type 商品类型
     * @return 返回商品信息
     */
    List<Commodity> selectCommodityByPage(Page page, int type);

    /**
     * 查询对应商品类型数量
     * @param type 商品类型
     * @return 返回商品类型对应的商品数量
     */
    int selectCountByType(int type);

    /**
     * 更新商品信息
     * @param commodity 商品
     * @return 受影响的行数
     */
    int updateCommodity(Commodity commodity);

    /**
     * 新增商品
     * @param commodity 商品
     * @return 受影响的行数
     */
    int insertCommodity(Commodity commodity);

    /**
     * 根据商品名称查询商品
     * @param commodityName 商品名称
     * @return 返回商品id
     */
    int selectCommodityByName(String commodityName);

    /**
     * 主页轮播图商品
     * @return 返回商品集合
     */
    List<Commodity> lunboCommodity();

}
